热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

临界|吸烟者_操作系统与安全考点总结

篇首语:本文由编程笔记#小编为大家整理,主要介绍了操作系统与安全考点总结相关的知识,希望对你有一定的参考价值。复习课1回放1:52:45开始复习课2回放

篇首语:本文由编程笔记#小编为大家整理,主要介绍了操作系统与安全考点总结相关的知识,希望对你有一定的参考价值。


复习课1回放 1:52:45开始

复习课2回放 1:16:50开始有画面

所有材料PDF版


文章目录


  • 复习课2
    • 题型
    • 简答【摘抄自课本/网络,仅供参考】
    • 应用

  • 复习课1
    • U1 操作系统概述
    • U2 处理器管理
    • U3 同步、通信与死锁
    • U4 存储管理
    • U5 设备管理
    • U6 文件管理
    • U7 操作系统安全与保护
    • 重点习题
      • U3
      • U4
      • U6






复习课2

题型


  • 选择(20分,2分/个)
  • 简答(40分,8分/个)
    • 分值偏高,答题的时候多答点字
    • 必考一道U7的简答
  • 计算(40分,10分/个)
    • 银行家算法必考
    • 设计同步算法必考
      • 格式:信号量定义+进程+主函数
      • 可以放心的是:没有新题,一定是课上讲过的习题/课后例题

简答【摘抄自课本/网络,仅供参考】


  • 【U2P75】进程控制块的作用是什么?它主要包括哪几部分内容?


    • 作用:是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。
    • 包括:
      (1)标识信息。标识信息用于唯一地标识一个进程,分为用户使用的外部标识符和系统使用的内部标识号。
      (2)现场信息。现场信息用于保留进程在运行时存放在处理器现场中的各种信息。
      (3)控制信息。控制信息用于管理和调度进程,包括:进程调度的相关信息;进程间的族系信息;进程间通信信息,;进程段/页表、进程映像在外存中的地址;CPU 的占用和使用信息;进程特权信息;资源清单;文件传输和I/О信息。
  • 【U4】简述页式虚拟存储管理的基本原理,并画出段页式虚存管理中逻辑地址到实际物理地址的转换过程图。


    • 分页虚拟存储管理方式是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的虚拟存储器系统。在进程装入主存时,并不是装入全部页面,而是装入若干页(一个或零个页面),之后根据进程运行的需要,动态装入其他页面:当主存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便腾出空间,装入新的页面。

    • 书P234

    • 书P208

    • 书P214

  • 【U4P215】简述分页和分段的区别。


    • 页是信息的物理单位,分页是为了系统管理内存的方便而进行的,故对用户而言,分页是不可见的,是透明的;段是信息的逻辑单位,分段是作业逻辑上的要求,对用户而言,分段是可见的。
    • 页的大小是固定的,由系统决定;段的大小是不固定的,由用户作业本身决定。
    • 从用户角度看,分页的地址空间是一维的,而段的地址空间是二维的 。
  • 【U2P105】简述时间片轮转调度算法的基本思想。


    • 时间片轮转法通常用在分时系统,它按照先进先出原则轮流地调度就绪队列中的进程。在实现时,它利用一个定时时钟,使之定时地发出中断。时钟中断处理程序在设置新的时钟常量后,即转入进程调度程序,选择一个新的进程占用CPU。时间片长短的确定遵循这样的原则:既要保证系统各个用户进程及时地得到响应,又不要由子时间片太短而增加调度的开销,降低系统的效率。
  • 【U7P360】解释可信计算基。


    • 计算机系统内安全保护装置的总体,包括硬件、固件、可信软件和负责执行安全策略的管理员在内的组合体,称为可信计算基(Trusted Computing Base , TCB),它建立一个基本的保护环境,提供可信计算机系统所要求的用户服务。
    • TCB的组成部分有:操作系统的安全内核,具有特权的程序和命令,处理敏感信息的程序,实施安全策略的文件,相关硬件和设备,机器诊断程序,安全管理员等。
    • TCB能完成的任务有:内核的安全运行,标识系统中的用户,保持用户到TCB登录的可信路径,实施主体对客体的访问控制,维护TCB功能的正确性和监视及记录系统中所发生的事件。
    • TCB的软件部分是安全操作系统的核心,其中最重要的组成部分是“引用监视程序”,它全权负责针对涉及安全性的操作(如执行打开或写人系统调用)的安全性检查,确定此操作能否执行。
    • 通用操作系统的TCB可包括多个安全功能模块(TCB Security Function, TSF),每个TSF实现一个安全功能策略(TCB Security Policy , TSP ),TSP的集合构成安全域,以防止不可信主体的干扰和篡改。实现TSF有两种方法,一是设置前端过滤器,防止入侵者非法进入系统;二是设置访问监督器,它能防止越权访问,两者都是在硬件基础上通过软件实现的安全策略,能够提供所要求的服务。
  • 【U4】简述实现虚拟存储器的基本原理。【老师说与上面的简答重复,删除了】

  • 【U2P61】简述中断处理的一般流程。【老师说这是一个重点】


    • 发现中断源。在中断未被屏蔽的前提下,硬件发现中断/异常事件,并由CPU响应中断/异常请求。当发现多个中断源时,将根据预定的中断优先级先后响应中断请求。
    • 保护现场。暂停当前程序运行,硬件将中断点的现场信息(PSW)保存至核心栈,使得中断/异常处理程序在运行时不会破坏被中断程序中的有用信息,以便在处理结束后返回原程序继续运行。
    • 转向中断/异常事件处理程序执行。此时处理器状态已从用户态转换至内核态,中断/异常处理程序开始工作。
    • 恢复现场。当中断处理结束后,恢复原运行程序的PSW,重新返回中断点以便执行后续指令。当异常处理结束后,返回点会因异常类型而异,大部分应用程序指令执行出错时,异常处理会结束进程,不可能回到原程序;如果是执行访管指令,则异常处理完成后返回这条访管指令的下一条指令;对于页面故障,异常处理结束后会返回发生异常的那条指令重新执行。
  • 【U3P162】简述死锁的概念及其四个必要条件。


    • 互斥条件( mutual exclusion):临界资源是独占资源,进程应互斥且排他地使用这些资源。
    • 占有和等待条件( hold and wait):进程在请求资源得不到满足而等待时,不释放已占有资源。
    • 不剥夺条件( no preemption) :又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺。
    • 循环等待条件( circular wait) :又称环路条件,存在循环等待链,其中,每个进程都在等待链中等待下一个进程所持有的资源,造成这组进程处于永远等待状态。
  • 【U7P369】简述沙盒技术。


    • 在大多数操作系统中,进程所调用的函数会自动继承调用进程的所有访问权限,特别是可访问进程的整个虚拟内存。若函数是不可信的,如从因特网下载的程序(可能带有“特洛伊木马”病毒) ,这种不受限制的访问是不允许的,因为会给系统造成严重威胁。为了限制不可信、具备破坏力或无法判定意图的程序造成潜在破坏的范围,系统可限制访问权限为调用进程所具有的授权的一小部分特权,通常称这种缩小后被隔离的访问环境为“沙盒”。
    • 最重要的一点是,限制程序在小范围的内存区(沙盒)中运行,访问沙盒以外的数据及转向沙盒以外的代码的企图都会产生保护中断并终止程序执行。内存沙盒的一种变体是为每个程序提供两个单独的沙盒,一个沙盒用于存放代码,另一个沙盒用于存放数据。只允许程序在数据沙盒中读写,且只能在代码沙盒中执行,这样进一步缩小程序对内存的访问权限,从而实现更严格的内存保护。
  • 【U1P24-25】什么是系统调用?简述API、库函数及系统调用之间的关系及区别。


    • 操作系统的功能通过一组称为系统调用(system call)的接口呈现给用户,内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果返回给应用程序。

    • 【关于“API、库函数及系统调用之间的关系及区别”,我找了好多版参考答案,不知道哪个河里…】

    • 【来源网络】API是由同名的封装把系统调用封装成应用程序能够直接使用的应用接口。所以,一个库函数就是一种API,一个API的实现可能会用到一个系统调用或多个系统调用,也可能若干API封装相同的系统调用,即使完全不使用系统调用,也不存在任何问题。

      库函数是语言本身的一部分,可以调用多个系统调用;系统调用(函数)是内核提供给应用程序的接口,属于系统的一部分,可以认为是某种内核的库函数;操作系统API是有系统调用(函数)的集合(也就是将许多的系统调用封装在了一起)。

    • 【来源课本】从应用程序角度来看,库函数与系统调用之间是没有差别的,用户关心的是函数名、参数类型及个数、返回码含义。但从系统实现角度来看,两者之间存在重大区别。使用库函数的好处是可以隐藏访管指令的细节,使得系统调用更像函数调用,对用户隐蔽系统调用实现细节,这样在改动内核时不会影响应用程序的正确性。但是库函数属于应用程序,在用户态运行,系统调用对应的服务例程属于系统程序,在内核态运行,如果需要的话,用户可以替换库函数,通常却不能替换系统调用。

  • 【U3,课本没有,摘抄自PPTU3-P42】简述记录型信号量的P、V操作的定义。


    • 在整型信号量机制中的P操作,只要是信号量S≤0, 就会不断地测试。因此,该机制并未遵循“让权等待”的准则, 而是使进程处于“忙等”的状态。
      记录型信号量机制,则是一种不存在“忙等”现象的进程同步机制。但在采取了“让权等待”的策略后,又会出现多个进程等待访问同一临界资源的情况。为此,在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。
      记录型信号量是由于它采用了记录型的数据结构而得名的。它所包含的上述两个数据项可描述为:
      typedef struct
      int value;
      list of process *L;
      semaphore;
      void P(static semaphore s)
      s.value--;
      if (s.value<0) sleep(s.L);

      void V(static semaphore s)
      s.value++;
      if (s.value≤0) wackup(s.L);

  • 【U3】简述进程同步的主要任务和应遵循的原则。


    • 【书P129】进程同步( synchronization)是指为完成共同任务的并发进程基于某个条件来协调其活动,因为需要在某些位置上排定执行的先后次序而等待,传递信号或消息所产生的协作制约关系。
    • 【PPT U3-P28】
      1)空闲让进:临界资源处于空闲状态时,应该允许一个请求该资源的进程进入自己的临界区,以利用该临界资源
      2)忙则等待:各进程应该互斥地访问临界资源
      3)有限等待:等待某临界资源的进程应该能够在有限时间内进入自己的临界区,避免“死锁”
      4)让权等待:当进程不能进入自己的临界区时,应该立即释放处理机,避免“忙等”
  • 【U7P383-384】什么是明文、密文与密钥,简述对称算法与公开密钥算法。


    • 明文是指被加密的文本;密文是指加密后的文本;密钥是加解密算法中所使用的关键参数。
    • 对称算法又称传统密码算法,就是加密密钥能够从解密密钥中推算出来,反之亦然。在大多数对称算法中,加密/解密密钥是相同的,这种算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对信息进行加密和解密。对称算法分为两种:一是只对明文中的字位(或字节)运算的算法,称序列算法或序列密码;二是对明文中的一组字位运算,这些位组称为分组,相应的算法称为分组算法或分组密码。
    • 公开密钥算法又称非对称密码算法,其设计机理是:用做加密的密钥不同于用做解密的密钥,而且解密密钥不能根据加密密钥计算出来。之所以称其为公开密钥算法,是因为加密密钥可以公开,其他人能够用加密密钥来加密信息,但只有用相应的解密密钥才能解密信息,因此,加密密钥称为公开密钥,解密密钥称为私有密钥。

应用


  1. 对一个将页表放在内存中的分页系统:


    • 如果访问内存需要0.2μs,有效访问时间为多少?


      • 考点:在分页存储系统中,一次指令执行需要访问两次内存:①查页表,将逻辑地址–>物理地址②根据物理地址去内存取指令
      • 有效访问时间为:2×0.2=0.4μs
    • 如果增加一个快表,且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假设查找快表需花的时间为0)?


      • 快表实际上是一个高速缓存,里面装一部分页表
      • 有效访问时间为:0.9×0.2【命中快表一次访存】+(1-0.9)×2×0.2【不命中查页表两次访存】=0.22μs
  2. 有一个仓库,可以存放A和B两种产品,但要求:【曾经有一年考过,PC问题变型】
    1)每次只能存入一种产品(A或B);
    2)-N 试用同步算法描述A产品与B产品的入库过程


    • 条件2 ==> A产品的数量不能比B产品的数量少N个以上,A产品的数量不能比B产品的数量多M个以上。可以设置两个信号量来控制A、B产品的存放数量:
      sa表示当前允许A产品比B产品多入库的数量,即在当前库存量和B产品不入库的情况下,还可以允许sa个A产品入库;初始时,若不放B而仅放A产品,则sa最多为M-1【没有等号,所以-1】个。
      sb表示当前允许B产品比A产品多入库的数量,即在当前库存量和A产品不入库的情况下,还可以允许sb个Y产品入库;初始时,若不放B而仅放A产品,则sb最多为N-1个。
      当往库中存放入一个A产品时,则允许存入B产品的数量也增加1,故信号量sb应加1;当往库中存放入一个B产品时,则允许存入A产品的数量也增加1,故信号量sa应加1。

    • 设置信号量sa表示当前允许A产品比B产品多入库的数量,信号量sb表示当前允许B产品比A产品多入库的数量。
      semaphore mutex=1,sa=M-1,sb=N-1;
      process puta()
      while(1)
      取一个产品;
      P(sa); //先资源后互斥!
      P(mutex);
      将产品入库;
      V(mutex);
      V(sb);

      process putb()
      while(1)
      取一个产品;
      P(sb);
      P(mutex);
      将产品入库;
      V(mutex);
      V(sa);

      main()
      cobegin
      puta();
      putb();

  3. 设系统中有3种类型的资源A、B、C和5个进程P0、P1、P2、P3、P4,A资源的数量为10,B资源的数量为5,C资源的数量为7。在T0时刻系统状态如表1所示。系统采用银行家算法实施死锁避免策略。

    表1

    【这道题情况很全,考试就考2~3种情况,且下方的答案未给表格,考试要求画出表格


    • T0时刻是否为安全状态?若是,请给出安全序列。
      • 利用银行家算法对T0时刻的资源分配情况进行分析,可得此时刻的安全性分配情况,可知在T0时刻存在一个安全序列P1,P3,P4,P2,P0,故系统是安全的。
    • 在T0时刻若进程P1发出资源请求Request1(1,0,2),是否能够实施资源分配?
      • P1请求资源Request1(1,0,2),系统按银行家算法进行检查:
        Request1(1,0,2)≤Need1(1,2,2) Request1(1,0,2)≤Available(3,3,2)
        系统试探分配,修改相应的向量后,利用安全性算法检查此时系统是否安全,可以找到一个安全序列P1,P3,P4,P0,P2。因此,系统是安全的,可以立即把P1所申请的资源分配给它。
    • 在2)的基础上P4发出资源请求Request4(3,3,0),是否能够实施资源分配?
      • P4请求资源Request4(3,3,0),系统按银行家算法进行检查:
        Request4(3,3,0)≤Need4(4,3,1) Request4(3,3,0)>Available(2,3,0),所以让P4等待。
    • 在3)的基础上P0发出资源请求Request0(0,2,0),是否能够实施资源分配?
      • P0请求资源Request0(0,2,0),系统按银行家算法进行检查:
        Request0(0,2,0)≤Need0(7,4,3) Request0(0,2,0)≤Available(2,3,0)
        系统试探分配,修改相应的向量后,利用安全性算法检查此时系统是否安全,可用资源Available(2,1,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。
    • 【表格形式参考,本题我的安全序列与老师给的不一样,这是合理的,安全序列并不唯一】
  4. 一条河上架设了由若干个桥墩组成的一座桥。若一个桥墩只能站一个人,过河的人只能沿着敲向前走不能向后退。过河时,只要对岸无人过,就可以过。但不允许河对岸的两个人同时过,以防止出现死锁。请给出两个方向的人顺利过河的同步算法。


    • 信号量s实现两个方向的互斥,scount实现同方向N个桥墩最多能同时过N个人的控制,scount1、scount2是修改计数器count1、count2的互斥信号量。
      semaphore s=scount1=scount2=1,scount=N;
      int count1=count2=0;
      void direct1(int i)
      P(scount1);
      if(count1==0) P(s);
      count1++;
      V(scount1);
      P(scount);
      上桥,过桥,下桥;
      V(scount);
      P(scount1);
      count1--;
      if(count1==0) V(s);
      V(scount1);
      void direct2(int i)
      P(scount2);
      if(count2==0) P(s);
      count2++;
      V(scount2);
      P(scount);
      上桥,过桥,下桥;
      V(scount);
      P(scount2);
      count2--;
      if(count2==0) V(s);
      V(scount2);
      main()
      cobegin()
      direct1(1);
      ...
      direct1(n);
      direct2(1);
      ...
      direct2(n);

  5. 设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页数据存储空间,页的大小为1KB。操作系统采用固定分配局部置换策略为此进程分配4个物理块,如表1所示。当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据,请回答下列问题。


    页号物理块号装入时刻访问位
    071301
    142301
    222001
    391601

    • 该逻辑地址对应的页号是多少?


      • 17CAH转化为2进制为0001 01 11 1100 1010
      • 页的大小为1KB,则页内偏移地址为10位,于是前6位为页号为5
      • 页表内还未加载5号页面,产生缺页中断
    • 若采用先进先出置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。


      • FIFO,0号页面最早装入被淘汰,被转换的页面所在的物理块为7,则对应的物理地址为(0001 11 11 1100 1010)2=1FCAH
    • 若采用简单Clock置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。(设搜索下一页的指针沿顺时针方向移动,且当前指向2号物理块,如下图所示)


      • 2号物理块访问位为1,清零访问位并继续检索4号物理块;4号物理块访问位为1,清零访问位并继续检索7号物理块;7号物理块访问位为1,清零访问位并继续检索9号物理块;9号物理块访问位为1,清零访问位并继续检索2号物理块。循环扫描一遍后又回到2号物理块,此时访问位为0,2号物理块被淘汰。
      • Clock,被转换的页面所在的物理块为2,所以对应的物理地址为(0000 10 11 1100 1010)2=0BCAH
  6. 考虑三个吸烟者进程和一个经销商进程的系统。每个吸烟者连续不断地做烟卷并抽他做好的烟卷,做一支烟卷需要烟草、纸和火柴三种原料。这三个吸烟者分别掌握有烟草、纸和火柴。经销商源源不断地提供上述三种原料,但他只将其中的两种原料放在桌上,具有另一种原料的吸烟者就可以做烟卷并抽烟,且在做完后给经销商发信号,然后经销商再拿出两种原料放在桌上,如此反复。试设计一个同步算法来描述他们的活动。


    • 设smokerA拥有烟草,需要纸和火柴,设纸和火柴为信号量A;设smokerB拥有纸,需要烟草和火柴,设烟草和火柴为信号量B;设smokerC拥有火柴,需要烟草和纸,设烟草和纸为信号量C;
      设provider提供原材料的信号为D;
      semaphore A=B=C=0,D=1;
      int i;
      void smokerA()
      while(1)
      P(A);
      ......smoking;
      V(D);

      void smokerB()
      while(1)
      P(B);
      ......smoking;
      V(D);

      void smokerC()
      while(1)
      P(C);
      ......smoking;
      V(D);

      void provider()
      while(1)
      P(D);
      i=random(2);
      switch(i)
      case'0': V(A);
      case'1': V(B);
      case'2': V(C);


  7. 在一个请求分页存储管理系统中,一个程序的页面访问序列为4,3,2,1,4,3,4,5,3,2,1,5。【要写过程表格,不能只给出答案】


    • 采用LRU页面置换算法,设配给该程序的页框数为3,并且初始时程序没有装入任何页面,试求在访问过程中发生缺页中断的次数和缺页率。(5分)


    • 采用工作集置换算法,设Δ=2,并且在时刻t=0时,初始工作集为(3,4),其中,4号页面在t=0时被引用,3号页面在t=-1时被引用,试求在访问过程中发生的缺页中断次数和缺页率。(5分)





复习课1

【补2班】是旁听了一点点2班重点


U1 操作系统概述


  • 计算机系统的组成
  • 操作系统的概念、目标、作用、分类、功能、特性、接口
  • 复用、虚拟、抽象三种技术
  • API、库函数、系统调用的区别
  • 系统调用与库函数的区别
  • 操作系统内核的概念、功能、属性、策略与机制、用户态、核心态
    • 策略与机制可以少花些精力

U2 处理器管理


  • 特权指令、非特权指令与内核态、用户态之间的关系,用户态和内核态如何转换
  • 程序状态字的内容、功能、作用
  • 中断概念、分类、多重中断
  • 中断(异步中断)与异常(同步中断)的概念区别
  • 中断处理的一般流程
    • 简答题容易考
  • 异常处理的一般流程
  • 进程的概念、属性、与程序的区别
  • 三态模型 、五态模型、七态模型中各种状态如何转换
  • 进程控制块概念、内容、作用
    • 往年考过 “PCB中包含什么信息” 的简答
  • 线程的概念、状态、与进程的区别
  • 处理器的高级、中级、低级调度
  • 各种调度算法基本思想

U3 同步、通信与死锁


  • 并发、并行的概念与区别
  • 临界资源、临界变量、临界区
  • 互斥与同步的概念
  • 进程同步的主要任务和应遵循的原则
  • 记录型信号量的P、V操作的定义
    • 往年考过 “记录型信号量的PV操作的定义” 的简答
  • 生产者-消费者、读者-写者、哲学家进餐、嗜睡的理发师问题
    • 看补充的例题就可以,补充过的例题:吸烟者、过河、单行道、司机与售票员、零件装配问题等
    • 卷子最后必考一道类似的设计题
  • 进程通信的概念、方式
    • 知道大体上的几个方法即可
  • 中断机制与信号机制的类比
    • 考试应该不考
  • 死锁的概念、产生的条件、防止策略
    • 四个必要条件是重点
    • 【补2班】如果是简答,不要只写“互斥、占有和等待、不剥夺、循环等待”这几个字,稍微多写几个字,可参考书P162
  • 死锁的避免算法(重点)
    • 银行家算法必考
  • 死锁的检测算法
    • 通过资源分配图是否能完全化简判断

U4 存储管理


  • 固定分区、可变分区的概念、地址转换
  • 可变分区的分配算法
  • 分页、分段管理的概念、页表、多级页表、快表、反置页表、段表、各种地址转换
    • 有道课后习题涉及反置页表
      • P250/17.一台机器有48位虚地址和32位物理地址,若页长为8KB,问页表共有多少个表项?如果设计一个反置页表,则有多少个表项?
      • 【考试不考】因为页长为8K,则是2的13次方,所以页表项有2的35次方,反置页表有2的19次方。页表是记录每一页放到哪些内存块。而反置页表是记录每个内存块放的是哪一页,所以反置页表的大小即内存的块数
  • 分段与分页的比较
  • 实现虚拟存储器的基本原理
    • 往年考过此简答
  • 请求分页方式的虚拟地址转换过程
  • 全局替换算法:最佳、先进先出、最近最少使用、第二次机会、时钟
    • 考题:给进程要访问的页面序列+页框个数,求缺页中断产生次数和缺页频率(=缺页次数/总页面数)+中间过程(xx时刻淘汰xx页面)
  • 局部替换算法:最佳、工作集模型、模拟工作集、缺页频率
  • 各种算法都要会,会使用表格方式描述替换过程,会计算缺页率
  • 虚拟段页式的原理与地址转换
    • 不做重点考虑

U5 设备管理


  • I/O控制的四种方式:轮询、中断、DMA、通道
  • 缓冲技术:单缓冲、双缓冲、多缓冲
  • 搜索定位算法:FIFO、最短查找时间、扫描、分步扫描、电梯、循环扫描
    • 本章考点
  • SPOOLing技术:预输入、缓输出、井管理
    • 【补2班】最多出个选择

U6 文件管理


  • 文件系统的概念、类型、属性
    • 目录分解法怎么提高效率
  • 文件的存取方法
  • FCB(文件目录)、目录文件、inode(linux系统)之间的关系
  • 文件的逻辑结构、物理结构都有哪些
    • 考点:显示链接方式FAT表的计算
  • 文件系统内部结构:用户打开文件表、系统打开文件表、活动inode表、磁盘块的分布
    • 用户打开文件表、系统打开文件表之间的关系:who指向who
  • 文件共享的三种方式:静态、动态、符号链接
  • 文件块管理:位示图、空闲区表、空闲块链、空闲块列表、成组链接法
    • 考题:根据磁盘块号如何定位到位示图行列
    • 考点&难点:成组链接法
  • 文件映射的原理
    • 不用管

U7 操作系统安全与保护

考简答


  • 可信计算基
  • 自主访问控制【书P375】与强制访问控制【书P379】
  • 安全模型的定义【书P364】、四种安全模型【书P364-366】:Lampson、Graham-Denning、Bell-LaPadula、D.Denning
  • 沙盒技术

重点习题


U3


  • 餐厅点餐问题【与嗜睡理发师类似,强调时序控制】


    • 一个快餐厅有4类职员:①领班:接受顾客点菜;②厨师:准备顾客的饭菜;③打包工:将做好的饭菜打包;④出纳员:收款并提交食品。每个职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并发运行的程序。

    • semaphore S1=1,S2=S3=S4=0;
      cobegin
      LB();
      CS();
      DBG();
      CNY();
      coend
      LB()
      while(1)
      顾客到达;
      P(S1);
      接受顾客点菜;
      V(S2);

      CS()
      while(1)
      P(S2);
      准备顾客的饭菜;
      V(S3);

      DBG()
      while(1)
      P(S3);
      准备顾客的饭菜;
      V(S4);

      CNY()
      while(1)
      P(S4);
      收款并提交食品;
      V(S1);

  • 吸烟者

  • 苹果橘子

  • 桥墩过河

  • 死锁避免:P184/23、24(解题过程按照P166例题)


U4


  • P249/3(2)
  • P252/30

U6


  • P354/28、29

推荐阅读
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 栈和队列的共同处和不同处
    本文主要介绍了栈和队列的共同处和不同处。栈和队列都是由几个数据特性相同的元素组成的有限序列,也就是线性表。队列是限定仅在表的一端插入元素、在另一端删除元素的线性表,遵循先进先出的原则。栈是限定仅在表尾进行插入或删除操作的线性表,遵循后进先出的原则。 ... [详细]
author-avatar
蹲点爱琴海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有